GtkStyleContext: Add gtk_style_context_list_classes().
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 6 Aug 2010 10:05:42 +0000 (12:05 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:37:36 +0000 (15:37 +0100)
gtk/gtkstylecontext.c

index cfe7a5e0f74a7cb5aef8380edf5bcd98c1c92a77..647d09078f117d29b41260fb0417715ff6a65e6c 100644 (file)
@@ -844,6 +844,32 @@ gtk_style_context_has_class (GtkStyleContext *context,
   return FALSE;
 }
 
+GList *
+gtk_style_context_list_classes (GtkStyleContext *context)
+{
+  GtkStyleContextPrivate *priv;
+  GtkStyleInfo *info;
+  GList *classes = NULL;
+  guint i;
+
+  g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL);
+
+  priv = context->priv;
+
+  g_assert (priv->info_stack != NULL);
+  info = priv->info_stack->data;
+
+  for (i = 0; i < info->style_classes->len; i++)
+    {
+      GQuark quark;
+
+      quark = g_array_index (info->style_classes, GQuark, i);
+      classes = g_list_prepend (classes, (gchar *) g_quark_to_string (quark));
+    }
+
+  return classes;
+}
+
 GList *
 gtk_style_context_list_regions (GtkStyleContext *context)
 {